package com.muyu.user.domain.resp;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.muyu.user.domain.SysUser;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 用户管理分页响应实体类
 *
 * @author <a href="mailto:1416681852@qq.com">liuguoqiang</a>
 * @version 1.0
 * @description: 用户管理分页响应实体类
 * @date 2025/9/14 20:11
 */
@Data
public class SysUserPageResp {
    /**
     * 用户ID
     */
    private Integer userId;
    /**
     * 用户头像
     */
    private String avatar;
    /**
     * 真实姓名
     */
    private String realName;
    /**
     * 用户等级
     */
    private Integer levelId;
    private String levelName;
    /**
     * 上级推广员ID
     */
    private Integer superiorPromoterId;
    private String promoterName;
    /**
     * 手机号码
     */
    private String phonenumber;
    /**
     * 余额
     */
    private BigDecimal balance;
    /**
     * 积分
     */
    private Integer points;

    /**
     * 用户账号
     */
    private String userName;

    /**
     * 性别
     */
    private Integer sex;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 地址
     */
    private String address;
    /**
     * 国家
     */
    private String country;

    /**
     * 身份证号
     */
    private String idCard;

    /**
     * 生日
     */
    @JsonFormat(locale = "yyyy-MM-dd",timezone = "GTM+8")
    private Date birthday;

    /**
     * 用户分组名称
     */
    private String groupName;

    /**
     * 用户标签名称
     */
    private String tagName;

    /**
     * 是否推广员
     */
    private Integer isPromoter;

    /**
     * 下级数量
     */
    private Integer subordinateCount;

    /**
     * 经验值
     */
    private Integer experience;

    /**
     * 佣金
     */
    private BigDecimal commission;

    /**
     * 消费次数
     */
    private Integer consumptionCount;

    /**
     * 创建时间
     */
    @JsonFormat(locale = "yyyy-MM-dd",timezone = "GTM+8")
    private Date createTime;

    /**
     * 最后登录时间
     */
    @JsonFormat(locale = "yyyy-MM-dd",timezone = "GTM+8")
    private Date loginDate;

    /**
     * 连续签到天数
     */
    private Integer consecutiveCheckin;

    /**
     * 注册类型
     */
    private Integer registrationType;

    /**
     * 状态
     */
    private Integer status;
    /**
     * 逻辑删除
     */
    private String delFlag;
    /**
     * 备注
     */
    private String remark;
    // 标签名称拼接字符串（逗号分隔），与 SQL GROUP_CONCAT 对应
    private String tagNameStr;

}
